The present invention relates to computer graphic systems, and more particularly relates to computer graphic systems that utilize discrete 3-D voxel representations within a 3-D Cubic Frame Buffer of unit voxels.
Ray casting methods, which employ only primary rays, have been applied to volumetric datasets such as those occurring in biomedical imaging and scientific visualization applications. Ray casting has also been applied to estimate illumination of various amorous phenomena by compositing evenly-spaced samples along primary viewing rays. Since ray casting utilizes only primary rays, it cannot support the simulation of light phenomena such as reflection, shadows, and refraction of intervening objects. Therefore, ray casting cannot always produce a realistic representation of a scene.
A more complex and realistic method of scene visualization is called ray tracing. Ray tracing involves projecting primary sight rays through a model of a scene. Once a primary ray intersects an object, secondary rays are generated which may be dependent upon the angle of incidence to the object and the surface characteristics of the object. The study of ray tracing of volume densities has included, among others, a probabilistic simulation of light passing through and being reflected by clouds of small particles, and the light-scattering equations of densities within a volume grid such as clouds, fog, flames, dust and particle systems.
Despite its good image quality, popularity, power, and simplicity, ray tracing has the reputation of being computationally very expensive. The basic operation of ray tracing involves calculating the intersection points of rays and objects. This intersection operation has been reported to consume at least 95% of the computer operation time involved for generating complex scenes.
A major strategy for reducing the computer time required for ray tracing involves diminishing the computation time required to determine a ray-object intersection. This can be accomplished by devising efficient methods for intersecting rays with specific objects or by reducing the number of objects being tested against the ray. The latter is mainly achieved by two alternative methods, hierarchical bounding of volumes and space subdivision. The hierarchical bounding of volumes method utilizes a geometric primitive that encapsulates an object. The geometric primitive has a relatively uncomplicated boundary equation which makes it relatively easy to compute the intersection of a ray with the boundary of the object. Improved performance has also been achieved by grouping the geometric primitive bounding volumes in hierarchies and employing various heuristic methods.
The space subdivision method divides a world space into a set of rectangular volumes called cells. Each cell has a corresponding list of all objects that have a portion of their volume residing in the cell. Space subdivision can be implemented with either nonuniform or uniform spatial subdivision. Nonuniform spacial subdivision divides the object space representing the scene into portions of varying sizes to suit the features of the scene.
In contrast to nonuniform spatial subdivision, uniform spatial subdivision divides the object space that represents the scene into uniform size cells organized in a 3-D lattice. Such methods employ a 3-D digital differential analyzer (3DDDA) for incrementally computing all cells that are intersected by the transmitted ray. Thereafter, only the objects that are listed as having a portion of their volume residing in the pierced cell are candidates for ordered ray-object intersection calculations. This reduces the number of calculations that need to be performed in order to determine which objects of the scene are contacted by the ray. However, even this improved method causes many extraneous calculations to be performed. As a result, the above processes are still somewhat inefficient because time consuming intersection calculations of the ray with a list of objects contained within the cell must be performed.
It is therefore an object of the present invention to provide a method for reducing the inefficiencies associated with ray tracing techniques set forth above.
It is an object of the present invention to provide a method to generate realistic images utilizing a discrete representation of objects of the scene being represented.
It is another object of the present invention to provide a ray tracing method which traverses 3-D discrete rays through discrete 3-D voxel representations stored in a 3-D Cubic Frame Buffer to create photorealistic images of a scene.
It is a further object of the present invention to provide a ray tracing method which overcomes the inherent disadvantages of known ray tracing methods.
Other and further objects will be made known to the artisan as a result of the present disclosure and it is intended to include all such objects which are realized as a result of the disclosed invention.